package com.zzt.zt_colorpicker.util

import android.graphics.Color
import android.util.Log
import androidx.annotation.Size

/**
 * @author: zeting
 * @date: 2022/12/15
 */
class ColorUtil {
    fun testColor() {
        //十六进制的颜色字符串
        var colorValue = "#" + toBrowserHexValue(1) + toBrowserHexValue(1) + toBrowserHexValue(1)
        Log.i("打印选择的颜色", "$colorValue")
    }

    /*
         *转16进制数 //十六进制的颜色字符串
         */
    private fun toBrowserHexValue(number: Int): String {
        val builder = StringBuilder(Integer.toHexString(number and 0xff))
        while (builder.length < 2) {
            builder.append("0")
        }
        return builder.toString()
    }

//    fun hexToRGB(colorValue: String) {
//        Log.i("打印选择的值：", "$colorValue")//#FF00FF
//        var str = colorValue
//        var str2 = str.substring(1, 3)
//        var str3 = str.substring(3, 5)
//        var str4 = str.substring(5, 7)
//        var red = Integer.parseInt(str2, 16)
//        var green = Integer.parseInt(str3, 16)
//        var blue = Integer.parseInt(str4, 16)
//        Log.i("打印十六进制转颜色值", "r=$red,g=$green,b=$blue")
//    }

    // 将 rgb 转换成 hsv，s 即为饱和度  色调（H），饱和度（S），明度（V）
    fun RGBToHsv(red: Int, green: Int, blue: Int) {
        val c = Color.argb(255, red, green, blue)
        val hsv = FloatArray(3)
        Color.colorToHSV(c, hsv)
        Log.i("打印选择的值", "R=${hsv[0]} ,G=${hsv[1]} ,B=${hsv[2]}")
        //var blue = hsv[2]
    }

    fun HSVToRGB(hsv: FloatArray?, @Size(3) rgb: IntArray) {
        val color: Int = Color.HSVToColor(hsv)
        rgb[0] = Color.red(color)
        rgb[1] = Color.green(color)
        rgb[2] = Color.blue(color)
        //  Color.colorToHSV();
    }
}